package pers.wensheng.patterns.behavioral_pattern.observer_pattern.my_impl.entity;

import java.util.ArrayList;
import java.util.List;

/**
 * 具体主题角色类
 */
public class SubscriptionSubject implements Subject {

    /**
     * 存储多个观察者对象
     */
    private List<Observer> weiXinUserList = new ArrayList<>();

    /**
     * 添加订阅者，添加观察者对象
     *
     * @param observer
     */
    @Override
    public void attach(Observer observer) {
        weiXinUserList.add(observer);
    }

    /**
     * 删除订阅者
     *
     * @param observer
     */
    @Override
    public void detach(Observer observer) {
        weiXinUserList.remove(observer);
    }

    /**
     * 通知订阅者，观察者更新消息
     *
     * @param message
     */
    @Override
    public void notify(String message) {
        for (Observer observer : weiXinUserList) {
            observer.update(message);
        }
    }
}
